home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / WINDOWS / LZAPI.ZIP / LZRES.ZIP / LZDIB.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-03-15  |  5.0 KB  |  133 lines

  1. /* LZDIB.H -----------------------------------------------------*
  2.  * L Z D I B --- Implementation OWL 2.x - Support for              *
  3.  *         LHA-Compressed Bitmaps                *
  4.  *    Dipl. Ing. Bernd Herd                    Dipl. Ing Harald Nuding*
  5.  *    Niederstr 36                                                    *
  6.  *    64285 Darmstadt                                                 *
  7.  *    Tel. 06151/664717                       Fax 06151/664740        *
  8.  *      EMail: herdnuding@aol.com               BBS:06151/664741        *
  9.  *--------------------------------------------------------------*/
  10.  
  11. /* This is our LZRES-Support for OWL 2.x tested with Borland C++ 4.5
  12.  
  13.    It implements Classes that you may want to use instead of
  14.    "TDib" and "TBitmap". This Classes are upward-Compatible,
  15.    that means you may use "Edit Replace" "TDib" by "TLZDib".
  16.  
  17.    The new Classes will add Consructors to generate DIBs or
  18.    Bitmaps from a BMP-File stored in a LZH-File stored in the
  19.    Resources of a DLL or EXE
  20.  
  21.    Note that our GRBTN Custom Control Library supports the same
  22.    Bitmap-Compression technology with Support to display previews
  23.    of Compressed Bitmaps in Dialogs, even when the Bitmaps has
  24.    256 Colors. It will also Dither Bitmaps to 16 Colors if
  25.    appreciated. It's the best Solution for Sign-Up-Bitmaps.
  26.  
  27. */
  28.  
  29. #ifndef __LZRES_H
  30. #  include "lzres.h"        // Definitions for the LZRES.OBJ or LZRES32.OBJ-File
  31. #endif
  32.  
  33. #define MAPCONSTRUCTORS        // This will map the TDib-Default-Constructors to TLZDib
  34.  
  35. /* IMPLEMENTS:
  36.    TLZDib        derived from TDib
  37.    TLZBitmap                         TBitmap
  38. */
  39.  
  40.  
  41.  
  42.  
  43.  
  44. /* TLZDib is a Class derived from TDib that brings with it new construtors:
  45.  
  46.    TLZDib(HINSTANCE instance, TResID resID, const char *NameInArchiv=NULL);
  47.  
  48.       A TLZDib-Object constructed with this constructor will load
  49.       a LZH-Compressed BMP-File from the Archiv.
  50.  
  51.    TLZDib(LPLZHEAD SourcePtr, const char *NameInArchiv=NULL);
  52.  
  53.       A TLZDib-Object constructed with this constructor will decompress
  54.       the memory-Block "SourcePtr" and create a TDib-Object for it
  55. */
  56.  
  57. class _OWLCLASS TLZDib : public TDib {
  58.  
  59. public:
  60.    TLZDib(HINSTANCE Instance, TResId resID, const char *NameInArchiv=NULL);
  61.    TLZDib(LPLZHEAD SourcePtr, const char *NameInArchiv=NULL);
  62.  
  63. #  ifdef MAPCONSTRUCTORS
  64.    // --------- when mapping the other Constructors, we -----
  65.    // now will be able to change all "TDib" by "TLZDib"
  66.  
  67.     TLZDib(HGLOBAL handle, TAutoDelete autoDelete = NoAutoDelete) : TDib(handle, autoDelete) {};
  68.     TLZDib(const TClipboard& clipboard): TDib(clipboard){};
  69.     TLZDib(const TDib& dib) : TDib(dib){};
  70.  
  71.     TLZDib(int width, int height, int nColors, uint16 mode=DIB_RGB_COLORS) : TDib(width, height, nColors, mode){};
  72.     TLZDib(const char* name) : TDib(name){};
  73.    #if !defined(BI_DATA_NEAR)
  74.     TLZDib(istream& is, bool readFileHeader = false) : TDib(is, readFileHeader) {};
  75.    #endif
  76.     TLZDib(const TBitmap& bitmap, const TPalette* pal = 0) : TDib(bitmap, pal) {};
  77. #  endif
  78.  
  79. private:
  80.    HGLOBAL GimmeADibHandle(HINSTANCE Instance, TResId resID, const char *NameInArchiv);
  81. };
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90. /* TLZBitmap is a Class derived from TBitmap that brings with it new construtors:
  91.  
  92.    TLZBitmap(HINSTANCE instance, TResID resID, const char *NameInArchiv=NULL);
  93.  
  94.       A TLZBitmap-Object constructed with this constructor will load
  95.       a LZH-Compressed BMP-File from the Archiv and convert it to a TBitmap.
  96.  
  97.    TLZBitmap(LPLZHEAD SourcePtr, const char *NameInArchiv=NULL);
  98.  
  99.       A TLZBitmap-Object constructed with this constructor will decompress
  100.       the memory-Block "SourcePtr" and create a TDib-Object for it
  101.  
  102.    NOTE: If you need Palette-Support take the long way with TLZDib.
  103. */
  104.  
  105. class _OWLCLASS TLZBitmap : public TBitmap {
  106.  
  107. public:
  108.    TLZBitmap(HINSTANCE Instance, TResId resID, const char *NameInArchiv=NULL);
  109.    TLZBitmap(LPLZHEAD SourcePtr, const char *NameInArchiv=NULL);
  110.  
  111. #  ifdef MAPCONSTRUCTORS
  112.    // --------- when mapping the other Constructors, we -----
  113.    // now will be able to change all "TBitmap" by "TLZBitmap"
  114.  
  115.     TLZBitmap(HBITMAP handle, TAutoDelete autoDelete = NoAutoDelete) : TBitmap(handle, autoDelete){};
  116.     TLZBitmap(const TClipboard& clipboard) : TBitmap(clipboard){};
  117.     TLZBitmap(const TLZBitmap& bitmap) : TBitmap(bitmap){};
  118.  
  119.     TLZBitmap(int width, int height, uint8 planes=1, uint8 bitCount=1, const void far* bits=0)
  120.     : TBitmap(width, height, planes, bitCount) {};
  121.     TLZBitmap(const BITMAP far* bitmap) : TBitmap(bitmap) {};
  122.     TLZBitmap(const TDC& Dc, int width, int height, bool discardable = false) : TBitmap(Dc, width, height, discardable){};
  123.     TLZBitmap(const TDC& Dc, const TDib& dib, uint32 usage=CBM_INIT) : TBitmap(Dc, dib, usage){};
  124.  
  125.     TLZBitmap(const TMetaFilePict& metaFile, TPalette& palette, const TSize& size) : TBitmap(metaFile, palette, size) {};
  126.     TLZBitmap(const TDib& dib, const TPalette* palette = 0) : TBitmap(dib, palette) {};
  127. #  endif
  128.  
  129. private:
  130.    HBITMAP GimmeABitmapHandle(HINSTANCE Instance, TResId resID, const char *NameInArchiv);
  131. };
  132.  
  133.